package top.syfy.bili.fbm.main;

import top.syfy.bili.fbm.util.DescPropertiesUtil;
import top.syfy.bili.fbm.util.FfmpegUtil;
import top.syfy.bili.fbm.util.JSONAttributeUtil;
import javax.swing.JFrame;
import javax.swing.JOptionPane;
import java.io.File;
import java.io.IOException;

/**
 * 主启动类
 *
 * @author awg
 * @date 2020/10/18 星期日
 */
public class MainEnter {

    public static void main(String[] args) {
        String ffmpeg, inPath, outPath;
        try {
            //ffmpeg可执行文件的所在目录，默认设置为当前用户的视频(影片)目录下
            ffmpeg = DescPropertiesUtil.getProperty("FFMPEG");
            //专辑存放目录（该目录下有多个"缓存视频的存储目录（一般为一串纯数字）"），默认设置为当前用户的视频(影片)目录下
            inPath = DescPropertiesUtil.getProperty("IN_PATH");
            //输出目录,默认设置为当前用户的桌面下
            outPath = DescPropertiesUtil.getProperty("OUT_PATH");
        } catch (IOException e) {
            JOptionPane.showMessageDialog(new JFrame(), e.getMessage(), "消息", JOptionPane.ERROR_MESSAGE);
            return;
        }

        //判断是否已设置属性
        if ("".equals(ffmpeg) || "".equals(inPath) || "".equals(outPath)) {
            JOptionPane.showMessageDialog(new JFrame(), "缺少必要的参数，请到 bilicachevideo.properties 文件中检查", "消息", JOptionPane.ERROR_MESSAGE);
            return;
        }

        //合并文件
        try {
            FfmpegUtil.runFfmpeg(ffmpeg, JSONAttributeUtil.parseCacheDir(new File(inPath)), new File(outPath));
        } catch (IOException e) {
            JOptionPane.showMessageDialog(new JFrame(), e.getMessage(), "消息", JOptionPane.ERROR_MESSAGE);
        }
        JOptionPane.showMessageDialog(new JFrame(), "合并完成", "消息", JOptionPane.INFORMATION_MESSAGE);
    }

}
